ブログで趣味でプログラミングからお料理まで呟いています。よろしくー。(^-^)/


トップページ > Perlについて

●Perlについて●

2023-07-10 00:28:42

再起処理について



階乗の計算の処理を色々考えて再起処理の勉強をしていました。

階乗とは、5なら、
1 * 2 * 3 * 4 * 5 = 120
と言う計算の事を言います。

最終的にはこんな形で落ち着きました。

use strict; print &factorial(5); #answer= 120 sub factorial { my $x = shift; if ( $x > 1 ){ return ( $x * &factorial ($x-1) ); }else{ return 1; } }


再起処理とは、一つの処理の中でまた同一の処理を呼ぶことを指します。
性質としては、再起処理を行うとまた元の呼び出し元に戻り処理の続きを行います。


上記のコードは、factorial(階乗)としていますが、最初のサブルーチンに対し5を代入して最初のサブルーチンの中で同一のサブルーチンfactorialに4を代入して…と続き、最後1を返して一個前のサブルーチンに戻ります。
factorial (1) = 1 になり、1を1段上にやっと Return する。
factorial (2) = 2 * 1 になり、今度は2を1段上に Return する。
factorial (3) = 3 * 2 になり、今度は6を1段上に Return する。
factorial (4) = 4 * 6 になり、今度は24 を Return する。
factorial (5) = 5 * 24 になり、今度は120 を Return する。
最終的な数は120になります。
いいね:8